4.2 Виджеты. Buttons GestureDetector
4 из 4 шагов пройдено

 Виджеты. Buttons GestureDetector

➡️Ссылка на репозиторий с кодом этого урока

Настройка дизайна Flutter кнопок

Рассмотрим способы, как указать свои стили для стандартной кнопки или как создать полностью свою кастомную кнопку.

Файл s3_button_widget.dart

class ButtonStyleExample extends StatelessWidget {  
  const ButtonStyleExample({super.key});  
  
  @override  
  Widget build(BuildContext context) {  
    return Column(  
      mainAxisAlignment: MainAxisAlignment.center,  
      children: [  
  
        ElevatedButton(  
          onPressed: () {},  
          child: Text("Заказать"),  
        ),  
  
      ],  
    );  
  }  
}

Flutter предоставляет метод styleFrom, который упрощает создание стилей для кнопок

Файл s3_button_widget.dart

ElevatedButton(  
  style: ElevatedButton.styleFrom(  
    foregroundColor: Colors.white, // Цвет текста  
    backgroundColor: Colors.blue[400], // Цвет фона  
    // Внутренние отступы    
    padding: const EdgeInsets.symmetric(horizontal: 20),  
    // Радиус скругления  
    shape: RoundedRectangleBorder(  
      borderRadius: BorderRadius.circular(8),  
    ),  
  ),  
  onPressed: () {},  
  child: Text("Заказать"),  
),

Неактивная кнопка

Чтобы сделать кнопку неактивной disabled, нужно в метод onPressed: передать значение null

ElevatedButton(  
  onPressed: null,  
  child: Text("Заказать"),  
),

Все значения параметров стилей для кнопки

foregroundColor : Цвет содержимого кнопки (например, текст).
backgroundColor : Цвет фона кнопки.
disabledForegroundColor : Цвет содержимого кнопки в неактивном состоянии.
disabledBackgroundColor : Цвет фона кнопки в неактивном состоянии.
shadowColor : Цвет тени кнопки.

surfaceTintColor : Цвет оттенка поверхности кнопки.
iconColor : Цвет иконки внутри кнопки.
iconSize : Размер иконки в кнопке.
iconAlignment : Выравнивание иконки внутри кнопки.
disabledIconColor : Цвет иконки в неактивном состоянии.

overlayColor : Цвет наложения при взаимодействии (например, при нажатии).
elevation : Высота (поднятие) кнопки над поверхностью.
textStyle : Стиль текста кнопки (размер, шрифт, жирность и т. д.).
padding : Внутренние отступы кнопки.
minimumSize : Минимальный размер кнопки.

fixedSize : Фиксированный размер кнопки (по ширине и высоте).
maximumSize : Максимальный размер кнопки.
side : Граница кнопки (например, цвет и толщина рамки).
shape : Форма кнопки (например, скругленные углы).
enabledMouseCursor : Вид курсора при наведении на кнопку в активном состоянии.
disabledMouseCursor : Вид курсора при наведении в неактивном состоянии.

visualDensity : Плотность компоновки кнопки (размеры и отступы).
materialTapTargetSize : Размер области нажатия кнопки.
animationDuration : Длительность анимации изменения стиля кнопки.
enableFeedback : Включает/отключает тактильный отклик (vibration)

alignment : Выравнивание содержимого кнопки.
splashFactory : Фабрика эффекта нажатия (волны, всплески и т. д.).
backgroundBuilder : Настройка фона кнопки через кастомные слои.
foregroundBuilder : Настройка содержимого кнопки через кастомные слои.


Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Оставить комментарий